﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public static class Board {
    public enum BoardType {
        HIDDEN, EXPOSED
    }
}
public static class CardProps
{
    // Start is called before the first frame update
    public enum ID {
        KONG_ZI, MO_ZI, XUN_ZI, NONE
    }
    public enum Camp {
        RU, MO, FA, DAO
    }
}
public static class Effect {
    public enum EffectType {
        VALUE_CHANGE, LOCATION_CHANGE
    }
    public enum Side {
        ENEMY, FRIEND, BOTH
    }
    public enum TargetRange {
        ALL, RANDOM, SPECIFIC
    }
    public enum ConditionRange {
        ALL, SPECIFIC
    }
    public enum SettleTimeType {
        //发动时机：瞬发 延迟 持续
        IMMEDIATE, DELAY, LAST
    }
    
    [System.Serializable]
    public struct Target {
        [Tooltip("效果目标选择边。敌方/我方/双方")]
        public Effect.Side Side;

        [Tooltip("效果范围。全部/随机一个/特定一个（如孔子），与上一属性组合完成目标指定")]
        public Effect.TargetRange Range;

        [Tooltip("在选择Specific时有效。指定目标判断的人物")]
        public CardProps.ID ID;
    }
    
    [System.Serializable]
    public struct Condition {
        [Tooltip("效果目标选择边。敌方/我方/双方")]
        public Effect.Side Side;

        [Tooltip("效果条件指定范围。全部/特定一个（如孔子），与上一属性组合完成条件指定")]
        public Effect.ConditionRange Range;

        [Tooltip("在选择Specific时有效。指定目标判断的人物")]
        public CardProps.ID ID;
    }
    
    [System.Serializable]
    public struct SettleTime {
        [Tooltip("发动时间类型，延时/瞬发/持续")]
        public Effect.SettleTimeType Type;

        [Tooltip("发动时间的具体数值，如：延时n回合发动")]
        public int Count;
    }
}
